tg-me.com/devopsslib/3610
Last Update:
Проблема: в распределённых облачных приложениях команды часто игнорируют необходимость централизованного логирования, трассировки и метрик.
Это приводит к тому, что при возникновении инцидента сложно быстро найти первопричину, восстановить последовательность событий или вовремя отреагировать на деградацию сервиса.
Решение: настройка единой платформы наблюдаемости с использованием решений вроде OpenTelemetry, Prometheus, Grafana, Jaeger и ELK. Применение принципа "инструментировать всё", включая бизнес-метрики, latency, error rate и трассировки.
Пример конфигурации с использованием OpenTelemetry и Prometheus:
# Для микросервиса
scrape_configs:
- job_name: 'my-service'
metrics_path: /metrics
static_configs:
- targets: ['my-service:8080']
# В коде сервиса:
const { MeterProvider } = require('@opentelemetry/sdk-metrics');
const { PrometheusExporter } = require('@opentelemetry/exporter-prometheus');
const exporter = new PrometheusExporter({ startServer: true }, () => {
console.log('Prometheus scrape endpoint: http://localhost:9464/metrics');
});
const meter = new MeterProvider({ exporter }).getMeter('my-service-meter');
Преимущества:
— Быстрое выявление и устранение проблем за счёт централизованных логов, метрик и трассировок
— Повышение надёжности и отказоустойчивости архитектуры
— Поддержка SLO/SLA и реального контроля за качеством сервиса